package common

import "time"

/**
 *    Description: 常量和枚举值
 *    Date: 2024/3/15
 */

// FunMode 函数相关常量
type FunMode string

const (
	V FunMode = "Verify"    // 校验函数特征的 KisFunction 函数
	S FunMode = "Save"      // (写数据到'数据库')存储函数特征的 KisFunction 函数,通过KisConnector进行是数据存储,数据的临时声明周期为KisWindows。
	L FunMode = "Load"      // (读取'数据库'数据')加载函数特征的 KisFunction 函数,通过KisConnector进行是数据加载,目的是为了和Save的函数进行并流。
	C FunMode = "Calculate" // 计算函数特征的 KisFunction 函数
	E FunMode = "Expand"    // 扩展函数特征的 KisFunction 函数
)

type OnOff int

const (
	FlowDisable OnOff = iota // 不启动
	FlowEnable               // 启动
)

// KisTypeFlow 流式相关常量
const (
	FuncType       string = "func"
	FlowType       string = "flow"
	ConnectionType string = "conn"
)

// ConnType connection 连接器相关常量
type ConnType string

const (
	REDIS      ConnType = "redis"
	MYSQL      ConnType = "mysql"
	KAFKA      ConnType = "kafka"
	TIDB       ConnType = "tidb"
	ES         ConnType = "es"
	ClickHouse ConnType = "clickhouse"
)

const (
	// FunctionIdFirstVirtual 为首结点Function上一层虚拟的Function ID
	FunctionIdFirstVirtual = "FunctionIdFirstVirtual"
	// FunctionIdLastVirtual 为尾结点Function下一层虚拟的Function ID
	FunctionIdLastVirtual = "FunctionIdLastVirtual"
)

const (
	DeFaultFlowCacheCleanUp               = 5 // 默认flow流缓存清理周期时间
	DeFaultExpiration       time.Duration = 0 // 默认过期时间0,表示永久有效
)
